More work on text nodes
authorMatthias Clasen <mclasen@redhat.com>
Fri, 1 Sep 2017 20:58:42 +0000 (16:58 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Sun, 10 Sep 2017 18:36:26 +0000 (14:36 -0400)
commitb0e8d8483d2b46dfc4d678e4a217d540837a2478
tree6d85e2f8ac33c4ece118dec754ac1a8ad3c80404
parentedc73e78b8e312f5e52f9d464baebe7a5d0fe581
More work on text nodes

This commit takes several steps towards rendering text
like we want to.

The creation of the cairo surface and texture is moved
to the backend (in GskVulkanRenderer). We add a mask
shader that is used in the next text pipeline to use
the texture as a mask, like cairo_mask_surface does.
There is a separate color text pipeline that uses the
already existing blend shaders to use the texture as
a source, like cairo_paint does.

The text node api is simplified to have just a single
offset, which determines the left end of the text baseline,
like all our other text drawing APIs.
28 files changed:
gsk/gskprivate.c
gsk/gskprivate.h
gsk/gskrendernode.h
gsk/gskrendernodeimpl.c
gsk/gskrendernodeprivate.h
gsk/gskvulkancolortextpipeline.c [new file with mode: 0644]
gsk/gskvulkancolortextpipelineprivate.h [new file with mode: 0644]
gsk/gskvulkanpipeline.c
gsk/gskvulkanpipelineprivate.h
gsk/gskvulkanrender.c
gsk/gskvulkanrenderer.c
gsk/gskvulkanrendererprivate.h
gsk/gskvulkanrenderpass.c
gsk/gskvulkanrenderpassprivate.h
gsk/gskvulkanrenderprivate.h
gsk/gskvulkantextpipeline.c [new file with mode: 0644]
gsk/gskvulkantextpipelineprivate.h [new file with mode: 0644]
gsk/meson.build
gsk/resources/vulkan/mask-clip-rounded.frag.spv [new file with mode: 0644]
gsk/resources/vulkan/mask-clip-rounded.vert.spv [new file with mode: 0644]
gsk/resources/vulkan/mask-clip.frag.spv [new file with mode: 0644]
gsk/resources/vulkan/mask-clip.vert.spv [new file with mode: 0644]
gsk/resources/vulkan/mask.frag [new file with mode: 0644]
gsk/resources/vulkan/mask.frag.spv [new file with mode: 0644]
gsk/resources/vulkan/mask.vert [new file with mode: 0644]
gsk/resources/vulkan/mask.vert.spv [new file with mode: 0644]
gsk/resources/vulkan/meson.build
gtk/gskpango.c